<?php
//Config : Les informations personnels de l'instance (log, pass, etc)
require("../include/config.php");

//API Fonctions : les fonctions fournis de base par l'API
require("../API/php/fonctions.php");

//Header établie la connection à la base $connection
require("../API/php/header.php");

//Fonctions : Fonctions personnelles de l'instance
require("../php/fonctions.php");

//Mode debug
$modeDebug = false;

//Public ou privé (clé obligatoire)
$modePublic = true;

//Mode de sortie text,json,xml,csv
//pour xml et csv $object_retour->data["resultat"] doit contenir qu'un est unique array
$modeSortie = "json";

//Liens de test
// phpsql/getConsoTiket.php?milis=123450&ctrl=ok&dateDebut=2013-11-25&dateFin=2013-12-04

$arrayInput = array(
    "dateDebut" => null,
    "dateFin" => null
);

//Récupération des entrants
$arrayValeur = recupInput($arrayInput);

//Object retour minima
// $object_retour->strErreur string
// $object_retour->data  string
// $object_retour->statut  string
    
//--------------------------------------------------------------------------
//Pour test on récupère les paramètres de l'appli
$strSql = "SELECT DISTINCT IF(a.`user` = '', 'Vide',UPPER(a.`user`)) as 'code_user'
    FROM `".$prefixTable."tab_suivihebdo_enreg` a
    WHERE 1=1
    AND a.`date_saisi` >= '".$arrayValeur["dateDebut"]."'
    AND a.`date_saisi` <= '".$arrayValeur["dateFin"]."'
    AND a.`type` = 24/*incident*/
    ORDER BY `code_user`
";

// On envois la requète
$select = $connection->query($strSql) or die('Erreur SQL !'.$strSql.'<br>'.print_r($connection->errorInfo(), true));

// On indique que nous utiliserons les résultats en tant qu'objet
$select->setFetchMode(PDO::FETCH_OBJ);

// On transforme les résultats en tableaux d'objet
$code_user = new stdClass();
$code_user->data = $select->fetchAll(PDO::FETCH_OBJ);
$code_user->nombre = count($code_user->data);

$object_retour->data["code_user"] = $code_user;

//--------------------------------------------------------------------------
//Pour test on récupère les paramètres de l'appli
$strSql = "SELECT DISTINCT IF(a.`commentaire` = '', 'Vide',SUBSTRING(a.`commentaire`,1,10)) as 'incident'
    FROM `".$prefixTable."tab_suivihebdo_enreg` a
    WHERE 1=1
    AND a.`date_saisi` >= '".$arrayValeur["dateDebut"]."'
    AND a.`date_saisi` <= '".$arrayValeur["dateFin"]."'
    AND a.`type` = 24/*incident*/
    ORDER BY `incident`
";

// On envois la requète
$select = $connection->query($strSql) or die('Erreur SQL !'.$strSql.'<br>'.print_r($connection->errorInfo(), true));

// On indique que nous utiliserons les résultats en tant qu'objet
$select->setFetchMode(PDO::FETCH_OBJ);

// On transforme les résultats en tableaux d'objet
$tickets = new stdClass();
$tickets->data = $select->fetchAll(PDO::FETCH_OBJ);
$tickets->nombre = count($tickets->data);

$object_retour->data["tickets"] = $tickets;

//--------------------------------------------------------------------------
//Pour test on récupère les paramètres de l'appli
$strSql = "SELECT e.`code_user`, e.`incident`, IFNULL(g.`charge`,0) as 'charge'
    FROM (
        SELECT b.`code_user`, d.`incident`
        FROM (
            SELECT DISTINCT IF(a.`user` = '', 'Vide',UPPER(a.`user`)) as 'code_user'
            FROM `".$prefixTable."tab_suivihebdo_enreg` a
            WHERE 1=1
            AND a.`date_saisi` >= '".$arrayValeur["dateDebut"]."'
            AND a.`date_saisi` <= '".$arrayValeur["dateFin"]."'
            AND a.`type` = 24/*incident*/
        ) b, (
            SELECT DISTINCT IF(c.`commentaire` = '', 'Vide', SUBSTRING(c.`commentaire`,1,10)) as 'incident'
            FROM `".$prefixTable."tab_suivihebdo_enreg` c
            WHERE 1=1
            AND c.`date_saisi` >= '".$arrayValeur["dateDebut"]."'
            AND c.`date_saisi` <= '".$arrayValeur["dateFin"]."'
            AND c.`type` = 24/*incident*/
        ) d
    ) e
    LEFT OUTER JOIN (
        SELECT IF(f.`commentaire` = '', 'Vide', SUBSTRING(f.`commentaire`,1,10)) as 'incident', IF(f.`user` = '', 'Vide',UPPER(f.`user`)) as 'code_user', SUM(f.`charge`) as 'charge'
        FROM `".$prefixTable."tab_suivihebdo_enreg` f
        WHERE 1=1
        AND f.`date_saisi` >= '".$arrayValeur["dateDebut"]."'
        AND f.`date_saisi` <= '".$arrayValeur["dateFin"]."'
        AND f.`type` = 24/*incident*/
        GROUP BY f.`commentaire`, f.`user`
    ) g
    ON e.`code_user` = g.`code_user`
        AND e.`incident` = g.`incident`
    WHERE 1=1
    ORDER BY e.`code_user`, e.`incident`
";

// On envois la requète
$select = $connection->query($strSql) or die('Erreur SQL !'.$strSql.'<br>'.print_r($connection->errorInfo(), true));

// On indique que nous utiliserons les résultats en tant qu'objet
$select->setFetchMode(PDO::FETCH_OBJ);

// On transforme les résultats en tableaux d'objet
$consoTicket = new stdClass();
$consoTicket->data = $select->fetchAll(PDO::FETCH_OBJ);
$consoTicket->nombre = count($consoTicket->data);

$object_retour->data["resultat"] = $consoTicket;

//--------------------------------------------------------------------------
if($modeDebug){
    $strSorti .= ($strSql);
}

require("../API/php/footer.php");
?>